import {
  CONSOLE_REQUEST_ENABLE,
  CONSOLE_RESPONSE_ENABLE,
} from '../index.js';
import {
  getToken,
} from '@/utils/auth';

export function requestSuccessFunc(requestObj) {
  // CONSOLE_REQUEST_ENABLE && console.info('requestInterceptorFunc', `url: ${requestObj.url}`, requestObj)
  CONSOLE_REQUEST_ENABLE;
  // 自定义请求拦截逻辑，可以处理权限，请求发送监控等
  // ...
  if (getToken()) {
    requestObj.headers['Authorization'] = getToken();
  } else {
    requestObj.headers['Authorization'] = 'Basic c3NpczowNDgwNjA5NkZGNTUzNDREOTE2NDMwREREM0I0NkU2MjY1QTM3MjFBQ0I4OTE3OEIzNzYwMUVGNzlCRjE3NTUxN0YzREIzNTQ4Mjc5QzMxNkUzNjUzMTdFNzM1NjlEMTE4M0E1RTI0RDlGRERENTAyOTlENDRDRjNEMzM5RjVBNzA3ODMzNTMyMjM0RkQyMEY4ODRDOUMzQjM4QkVCNEFBQTcxOUJEMDBCM0NDOEY0RTAwOUJERTJFNjk4RUM0QUVFNzNEMUFFOEI4Nzk0RDIxQURCODdB';
  }
  return requestObj;
}

export function requestFailFunc(requestError) {
  // 自定义发送请求失败逻辑，断网，请求发送监控等
  // ...
  // console.error(requestError)
  return Promise.reject(requestError);
}

export function responseSuccessFunc(responseObj) {
  // CONSOLE_RESPONSE_ENABLE && console.info('responseSuccessFunc', responseObj)
  CONSOLE_RESPONSE_ENABLE;
  // 文件下载不处理
  if (responseObj.request.responseType === 'blob') {
    // console.error('file')
    // console.error(responseObj)
    return responseObj;
  }
  const resData = responseObj.data;
  if (responseObj.status === 200) {
    // console.error(resData)
    return resData;
  } else {
    // eslint-disable-next-line
    GLOBAL.vbus.$message.error("系统错误")
  }
}

export async function responseFailFunc(requestError) {
  if (requestError.message.indexOf('timeout') !== -1) {
    // eslint-disable-next-line
    GLOBAL.vbus.$message.error("服务器无响应！")
  }
  const responseObj = requestError.response;
  const resData = responseObj ? responseObj.data : null;
  const respStatus = responseObj ? responseObj.status : null;
  // respStatus = 500
  // const { code ,message} = resData
  if (respStatus === 401) {
    // GLOBAL.vbus.$message.error(message)
    // store.commit('SET_USER_INFO',null)
    // store.commit('SET_USER_MENUS',null)
    console.error(requestError);
    // await store.dispatch('user/logout')
    // router.push({ path: '/login' })
  } else if (respStatus === 404) {
    // GLOBAL.vbus.$message.error(message)
    // router.push({path:'/404'})
  } else if (respStatus === 500) {
    // GLOBAL.vbus.$message.error(message)
    if (resData.code === 1001) {
      // eslint-disable-next-line
      GLOBAL.vbus.$message.error("无接口访问权限")
    }
  } else {
    // GLOBAL.vbus.$message.error(message)
  }
  return Promise.reject(resData || requestError.message);
}
// export function responseFailFunc(requestError) {
//   if (requestError.message.indexOf('timeout') != -1) {
//     GLOBAL.vbus.$message.error("服务器无响应！")
//   }
//   let responseObj = requestError.response
//   let resData = responseObj.data
//   let status = responseObj.status
//   switch (status) {
//     case 100:
//       GLOBAL.vbus.$message.error('数据不存在')
//       break;
//     case 101:
//       GLOBAL.vbus.$message.error('数据已存在')
//       break;
//     case 102:
//       GLOBAL.vbus.$message.error('数据已存在')
//       break;
//     case 103:
//       GLOBAL.vbus.$message.error('数据已存在')
//       break;
//     case 104:
//       GLOBAL.vbus.$message.error('数据同步错误')
//       break;
//     case 105:
//       GLOBAL.vbus.$message.error('被禁用')
//       break;
//     case 106:
//       GLOBAL.vbus.$message.error('数据集下面没有可用表')
//       break;
//     case 107:
//       GLOBAL.vbus.$message.error('主表单没有任何数据')
//       break;
//     case 200:
//       GLOBAL.vbus.$message.error('没有配置主键')
//       break;
//     case 201:
//       GLOBAL.vbus.$message.error('没有配置外键')
//       break;
//     case 202:
//       GLOBAL.vbus.$message.error('没有相应列')
//       break;
//     case 300:
//       GLOBAL.vbus.$message.error('无文件')
//       break;
//     case 301:
//       GLOBAL.vbus.$message.error('文件服务器错误')
//       break;
//     case 401:
//       router.push({ path: '/login' })
//       GLOBAL.vbus.$message.error('SQL 错误...')
//       break;
//     case 402:
//       GLOBAL.vbus.$message.error("配置信息错误")
//       break;
//     case 403:
//       GLOBAL.vbus.$message.error("存储过程执行失败")
//       break;
//     case 404:
//       GLOBAL.vbus.$message.error("任务执行中")
//       break;
//     case 405:
//       GLOBAL.vbus.$message.error("表不存在")
//       break;
//     case 406:
//       GLOBAL.vbus.$message.error("同步表错误")
//       break;
//     case 500:
//       GLOBAL.vbus.$message.error("系统错误")
//       break;
//     case 1000:
//       removeToken()
//       store.commit('SET_USER_INFO', null)
//       store.commit('SET_USER_MENUS', null)
//       store.commit('SET_USER_MENUS_BUTTON', null)
//       router.push({ path: '/login' })
//       GLOBAL.vbus.$message.error("无数据访问权限")
//       break;
//     default:
//       return Promise.reject(resData);
//   }
// }
